package org.bbx.autoops.builder;

import freemarker.template.Configuration;
import freemarker.template.Template;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import java.io.IOException;

/**
 * 初始化模板
 */
@Component
public class TemplateBuilder {

    @Autowired
    private FreeMarkerConfigurer freeMarkerConfigurer;


    /**
     * header 模板（首页）
     */
    public Template headerTemplate;

    /**
     * 一级标题 模板
     */
    public Template level1TitleTemplate;

    /**
     * 二级标题
     */
    public Template level2TitleTemplate;

    /**
     * 三级标题
     */
    public Template level3TitleTemplate;

    /**
     * 四级标题
     */
    public Template level4TitleTemplate;

    /**
     * 内容文本 模板
     */
    public Template contentTextTemplate;




    /**
     * html  基础模板
     */
    public Template baseHtml;

    /**
     * xy chart config  json 模板
     */
    public Template xyChartTemplate;

    /**
     * bar    config    json 模板（柱形图）
     */
    public Template barTemplate;

    /**
     * pie    config    json 模板（饼图）
     */
    public Template pieTemplate;


    /**
     * 巡检目标  内容  模板
     */
    public Template targetTemplate;


    /**
     * 巡检检查项  内容  模板
     */
    public Template checkContentTemplate;


    /**
     * 巡检结果  table
     */
    public Template resTableTemplate;


    /**
     * 巡检结果  tr
     */
    public Template resTrTemplate;


    /**
     * hss  列表   table
     */
    public Template hssTableTemplate;

    /**
     * hss  列表   tr
     */
    public Template hssTrTemplate;


    public Template chartContainerTemplate;


    public TemplateBuilder(FreeMarkerConfigurer freeMarkerConfigurer) throws IOException {
        Configuration cfg = freeMarkerConfigurer.getConfiguration();
        // load Template


//        this.freeMarkerConfigurer = freeMarkerConfigurer;
        this.level1TitleTemplate = cfg.getTemplate("level1-title.html");
        this.level2TitleTemplate = cfg.getTemplate("level2-title.html");
        this.level3TitleTemplate = cfg.getTemplate("level3-title.html");
        this.level4TitleTemplate = cfg.getTemplate("level4-title.html");


        this.baseHtml = cfg.getTemplate("base.html");
        this.xyChartTemplate = cfg.getTemplate("xy-chart.json");
        this.barTemplate = cfg.getTemplate("bar.json");
        this.pieTemplate = cfg.getTemplate("pie.json");
        this.targetTemplate = cfg.getTemplate("target.html");
        this.checkContentTemplate = cfg.getTemplate("check-content.html");
        this.contentTextTemplate = cfg.getTemplate("content-text.html");
        this.resTableTemplate = cfg.getTemplate("res-table.html");
        this.resTrTemplate = cfg.getTemplate("res-tr.html");

        this.hssTableTemplate = cfg.getTemplate("hss-table.html");
        this.hssTrTemplate = cfg.getTemplate("hss-tr.html");
        this.chartContainerTemplate = cfg.getTemplate("chart-container.html");

    }
}
